这段代码中的php中{ }代表什么意思?

来源:百度知道 编辑:UC知道 时间:2024/05/13 07:58:42
<?php
$str = '你';
for($i=0;$i<strlen($str);$i++){
echo ord($str{$i});
}
?>

这行中的echo ord($str{$i});的{}代表什么意思?{}在php中是变量解析我知道,可是这样这段代码的意思不就是循环显示echo ord($str1);和echo ord($str2);吗?那我为什么这样单独输出echo ord($str1);就提示我变量没有定义呢?
数组的话不是用[]吗?

$str="abcdef";

$str{0} //a
$str{1} //b
$str{2} //c
……

这是一种字符串的处理方式。你可以理解为“取第n个字符”。和数组一样,偏移量从 0 开始。推荐使用花括号。虽然也兼容中括号。
下面的代码等效,但不建议使用。

$str[0] //a
$str[1] //b
$str[2] //c
……

$str在这儿你可以把它看成一个数组
echo ord($str{$i});
直接
echo ord($str{0}); 不行?

字符串相当于一个特殊的数组。
$str{$i}是取第i+1个字符,同等于$str[$i]。
而$str1,$str2是两个新的变量,所以没定义。